#ifndef MONSTERAI
#define MONSTERAI

#include "Map.h"

class Monster;


// The AI that determines the movement of a monster.
// Subclasses can implement the getMove function to implement the AI
// Also contains some functions that AI's can use for convience.
class MonsterAI
{
public:
	MonsterAI(const Monster& monster, const Map& map);
	virtual ~MonsterAI();

	virtual void getMove(int& hDirection, int& vDirection) const = 0;

	void getRandomOtherValidDirection(int x, int y, int& hDirection, int& vDirection) const;

	static void getTurnedRight(int& hDirection, int& vDirection);

protected:
	const Monster& monster;
	const Map& map;
};

#endif
